Depending on the type of product you are using, the definitions of ‘Parameter’, ‘IO Logic’, ‘AxisStatus’, etc. may be different. This example is based on ‘Ezi-SERVO2’, so please apply the appropriate value depending on the product you are using.
Example)
FM_EZISERVO2_PARAM // Parameter enum when using 'Ezi-SERVO2'
FM_EZIMOTIONLINK2_PARAM // Parameter enum when using 'Ezi-MOTIONLINK2'
[EN]
1. Connect a device. 2. Check the drive error. 3. Enable Servo. 4.
Operate the motor with Linear interpolation move (incremental position).
5. Operate the motor with Linear interpolation move (absolute position).
6. Close connection.
[KR]
1. 장치 연결. 2. 드라이브 에러 체크. 3. Servo Enable. 4. 직선 보간 이송
(상대 좌표). 5. 직선 보간 이송 (절대 좌표). 6. 연결 해제.
// Check Drive's Error
;
EZISERVO2_AXISSTATUS AxisStatus
if (FAS_GetAxisStatus(nBdID, &(AxisStatus.dwValue)) != FMM_OK)
{
("[nBdID : %d ] Function(FAS_GetAxisStatus) was failed.\n", nBdID);
printfreturn false;
}
if (AxisStatus.FFLAG_ERRORALL)
{
// if Drive's Error was detected, Reset the ServoAlarm
if (FAS_ServoAlarmReset(nBdID) != FMM_OK)
{
("[nBdID : %d ] Function(FAS_ServoAlarmReset) was failed.\n", nBdID);
printfreturn false;
}
}
return true;
[EN]
You can check the current drive’s operating status using the
FAS_GetAxisStatus() function. You can reset the current drive’s alarm
status using the FAS_ServoAlarmReset() function.
[KR]
FAS_GetAxisStatus() 함수를 사용하여 현재 드라이브의 운전 상태를 확인 할
수 있습니다. FAS_ServoAlarmReset() 함수를 사용하여 현재 드라이브의
알람상태를 리셋 할 수 있습니다.
[EN]
EZISERVO2_AXISSTATUS is a structure that organizes drive status values.
It can be checked in the header file (MOTION_EziSERVO2_DEFINE.h).
[KR]
EZISERVO2_AXISSTATUS 는 드라이브 상태값이 정리된 구조체이며 헤더파일
(MOTION_EziSERVO2_DEFINE.h)에서 확인하실 수 있습니다.
// Move Linear IncPos
int lIncPos[2] = { 370000, 370000 };
int lVelocity = 0;
unsigned short wAccelTime = 100;
("---------------------------\n");
printf// Increase the motor by 370000 pulse (target position : Relative position)
= 40000;
lVelocity
("[Linear Inc Mode] Move Motor! \n");
printf
if (FAS_MoveLinearIncPos2(SLAVE_CNT, nBdID, lIncPos, lVelocity, wAccelTime) != FMM_OK)
{
("Function(FAS_MoveLinearIncPos2) was failed.\n");
printfreturn false;
}
[EN]
You can perform incremental position linear interpolation movement using
the FAS_MoveLinearIncPos2() function. Meaning of each argument in the
function is as follows sequentially: ‘Number of drives to linearly
interpolate’, ‘ID array of drives’, ‘Coordinate array’, ‘Speed’,
‘Acceleration/deceleration time’
[KR]
FAS_MoveLinearIncPos2() 함수를 사용하여 상대 좌표 직선 보간 이송을
수행할 수 있습니다. 해당 함수의 각 인자는 순차적으로 다음을 의미합니다.
‘직선 보간할 드라이브의 수’, ‘드라이브들의 ID배열’, ‘좌표 배열’, ‘속도’,
‘가감속 시간’
// Move Linear AbsPos
int lAbsPos[2] = { 0, 0 };
int lVelocity = 0;
unsigned short wAccelTime = 100;
("---------------------------\n");
printf
// Move the motor by 0 pulse (target position : Absolute position)
= 40000;
lVelocity
("[Linear Abs Mode] Move Motor! \n");
printfif (FAS_MoveLinearAbsPos2(SLAVE_CNT, nBdID, lAbsPos, lVelocity, wAccelTime) != FMM_OK)
{
("Function(FAS_MoveLinearAbsPos2) was failed.\n");
printfreturn false;
}
[EN]
You can perform absolute position linear interpolation using the
FAS_MoveLinearIncPos2() function. It has same argument as ‘Incremental
position linear interpolation’.
[KR]
FAS_MoveLinearIncPos2() 함수를 사용하여 절대 좌표 직선 보간 이송을
수행할 수 있습니다. 해당 함수의 각 인자는 ’상대 좌표 직선 보간 이송’과
동일합니다.
[EN]
1. For function descriptions on device connection and disconnection,
please refer to the [01.ConnectionExam] project document. 2. For
function descriptions on driver error check, please refer to the
[05.JogMovementExam] project document.
[KR]
1. 장치 연결 및 해제에 대한 함수 설명은 [01.ConnectionExam] 프로젝트
문서를 참고하시기 바랍니다. 2. 드라이버 에러 체크에 대한 함수 설명은
[05.JogMovementExam] 프로젝트 문서를 참고하시기
바랍니다.